package com.localjoycommunity.cpdj.project.system.service.impl;

import com.localjoycommunity.cpdj.common.utils.DateUtils;
import com.localjoycommunity.cpdj.project.system.domain.SysNews;
import com.localjoycommunity.cpdj.project.system.mapper.SysNewsMapper;
import com.localjoycommunity.cpdj.project.system.service.ISysNewsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 新闻资讯Service业务层处理
 *
 * @author leepandar
 * @date 2020-11-02
 */
@Service
public class SysNewsServiceImpl implements ISysNewsService {
    @Autowired
    private SysNewsMapper sysNewsMapper;

    @Override
    @Transactional
    public int addReadNum(long id) {
        return sysNewsMapper.uptateReadingNum(id);
    }

    @Override
    @Transactional
    public int updateDigNum(long id, int num) {
        return sysNewsMapper.updateLikeNum(id, num);
    }

    /**
     * 查询新闻资讯
     *
     * @param newsId 新闻资讯ID
     * @return 新闻资讯
     */
    @Override
    public SysNews selectSysNewsById(Long newsId) {
        return sysNewsMapper.selectSysNewsById(newsId);
    }

    /**
     * 查询新闻资讯app
     *
     * @param newsId 新闻资讯ID
     * @return 新闻资讯
     */
    @Override
    public SysNews selectSysNewsByIdApp(Long newsId) {
        SysNews sysNews = sysNewsMapper.selectSysNewsById(newsId);
        if (sysNews != null) {
            SysNews news = new SysNews();
            news.setNewsId(sysNews.getNewsId());
            news.setReading(sysNews.getReading() + 1);
            sysNewsMapper.updateSysNews(news);
            sysNews.setReading(sysNews.getReading() + 1);
            return sysNews;
        } else {
            return null;
        }
    }

    /**
     * 查询新闻资讯列表
     *
     * @param sysNews 新闻资讯
     * @return 新闻资讯
     */
    @Override
    public List<SysNews> selectSysNewsList2(SysNews sysNews) {
        return sysNewsMapper.selectSysNewsList2(sysNews);
    }
    @Override
    public List<SysNews> selectSysNewsList1(SysNews sysNews) {
        return sysNewsMapper.selectSysNewsList1(sysNews);
    }

    @Override
    public List<SysNews> selectSysNewsList(SysNews sysNews) {
        return sysNewsMapper.selectSysNewsList(sysNews);
    }

    /**
     * 新增新闻资讯
     *
     * @param sysNews 新闻资讯
     * @return 结果
     */
    @Override
    public int insertSysNews(SysNews sysNews) {
        sysNews.setCreateTime(DateUtils.getNowDate());
        sysNews.setUpdateTime(DateUtils.getNowDate());
        return sysNewsMapper.insertSysNews(sysNews);
    }

    /**
     * 修改新闻资讯
     *
     * @param sysNews 新闻资讯
     * @return 结果
     */
    @Override
    public int updateSysNews(SysNews sysNews) {
        sysNews.setUpdateTime(DateUtils.getNowDate());
        return sysNewsMapper.updateSysNews(sysNews);
    }

    /**
     * 批量删除新闻资讯
     *
     * @param newsIds 需要删除的新闻资讯ID
     * @return 结果
     */
    @Override
    public int deleteSysNewsByIds(Long[] newsIds) {
        return sysNewsMapper.deleteSysNewsByIds(newsIds);
    }

    /**
     * 删除新闻资讯信息
     *
     * @param newsId 新闻资讯ID
     * @return 结果
     */
    @Override
    public int deleteSysNewsById(Long newsId) {
        return sysNewsMapper.deleteSysNewsById(newsId);
    }
}
